<?php


namespace App\Helpers\WatchDog\DingTalk;

use App\Helpers\WatchDog\Message;
use App\Helpers\WatchDog\Messages;

/**
 * 钉钉：消息助手类
 *
 * @link    https://open.dingtalk.com/document/robots/custom-robot-access
 *
 * 由于消息发送太频繁会严重影响群成员的使用体验，因此钉钉开放平台对自定义机器人发送消息的频率作出以下限制：
 * 每个机器人每分钟最多发送20条消息到群里，如果超过20条，会限流10分钟。
 * 注意 如果你有大量发消息的场景（譬如系统监控报警）可以将这些信息进行整合，通过markdown消息以摘要的形式发送到群里。
 *
 * Class DingTalkHelper
 * @package helper
 */
class DingTalkHelper extends Messages implements Message
{
	// host
	protected static string $watchDogHost = 'https://oapi.dingtalk.com/robot/send';

	/**
	 * 设置url
	 */
	public static function getUrl(): string
	{
		$accessToken = [
			'access_token' => static::getAccessToken(),
		];
		return static::$watchDogHost . '?' . http_build_query($accessToken);
	}

	/**
	 * text类型
	 *
	 * @param string $content
	 */
	public static function sendText(string $content)
	{

		$msg = [
			'msgtype' => 'text',
			'text'    => [
				'content' => $content,
			],
			'at'      => [
				'atMobiles' => [],
				'isAtAll'   => false,
			],
		];

		static::sendMsg($msg);
	}
}